package cn.kow.kmall.service;

import cn.kow.kmall.pojo.dto.ItemCardDTO;
import cn.kow.kmall.pojo.dto.ItemEditDTO;
import cn.kow.kmall.pojo.dto.ItemListDTO;
import cn.kow.kmall.pojo.dto.ItemQueryDTO;
import cn.kow.kmall.pojo.entity.Item;
import cn.kow.kmall.pojo.entity.ItemAttribute;
import cn.kow.kmall.pojo.entity.Sku;
import org.springframework.data.domain.Page;

import java.util.List;

/**
 * @Author: lijun
 * @Description:
 * @Date: Created in 2019-05-24 18:08
 * @Modified By:
 */
public interface ItemService {

    /** ================== Item ================== **/

    void remove(List<Long> ids);

    void updateItemOnline(List<Long> ids, String operator);

    void updateItemOffline(List<Long> ids, String operator);

    Item getItemById(Long itemId);

    List<Item> listItemByIds(List<Long> itemIdList);

    Page<Item> listByPage(ItemQueryDTO queryDTO);

    List<ItemListDTO> queryItemList(ItemQueryDTO queryDTO);

    Item saveItem(ItemEditDTO itemDTO);

    Item updateItem(ItemEditDTO itemDTO);

    /** ================== Sku ================== **/

    Sku getSkuById(Long skuId);

    List<Sku> listSkuByItemId(Long itemId);

    List<Sku> listSkuByIds(List<Long> skuIds);

    List<ItemCardDTO> listItemCardBySkuIds(List<Long> skuIds);

    /** ================== ItemAttribute ================== **/

    List<ItemAttribute> listItemAttribute(Long itemId);
}
